Existing methods and systems to protect software against unauthorized use leverage approaches such as (A) check a key validity online, by Internet or a network connection or (B) write some hidden flags on a machine (registry, file system, etc) to save the first use, and limit to a predetermined number of days the usage (sharewares).
These existing methods are not necessarily usable on particular systems. Some computing environments indeed can not be modified and are “read-only”. Other computing environments are disconnected computing environments, i.e. with no network access (by nature or due to availability or security reasons). For example, read-only file systems on embedded appliance or live-CD systems cannot be modified. Or when the system powers off, any kind of modification is canceled or undone at the next start-up. This makes existing mechanisms inefficient. In some particular business computing environments (sensitive systems for instance), there is a need to run some software which must not modify anything in the running computing environment and/or which cannot rely on network connections.